
package es.ranking.padel.daoImpl;

import java.util.List;

import org.hibernate.SessionFactory;

import es.ranking.padel.dao.JugadorDao;
import es.ranking.padel.entidades.Jugador;

/**
 * The Class JugadorDaoImpl.
 */
public class JugadorDaoImpl implements JugadorDao {

	/** The session factory. */
	private SessionFactory sessionFactory;

	/**
	 * {@inheritDoc}
	 **/
	public void addJugador(Jugador jugador) {
		getSessionFactory().getCurrentSession().save(jugador);

	}

	/**
	 * {@inheritDoc}
	 **/
	public void updateJugador(Jugador jugador) {
		getSessionFactory().getCurrentSession().update(jugador);

	}

	/**
	 * {@inheritDoc}
	 **/
	public void deleteJugador(Jugador jugador) {
		getSessionFactory().getCurrentSession().delete(jugador);

	}

	/**
	 * {@inheritDoc}
	 **/
	public Jugador getJugadorById(int id) {
		@SuppressWarnings("unchecked")
		List<Jugador> list = getSessionFactory().getCurrentSession()
				.createQuery("from Jugador where idjugador=?")
				.setParameter(0, id).list();
		return (Jugador) list.get(0);
	}

	/**
	 * {@inheritDoc}
	 **/
	public List<Jugador> getJugadores() {
		@SuppressWarnings("unchecked")
		List<Jugador> list = getSessionFactory().getCurrentSession()
				.createQuery("from Jugador").list();
		return list;
	}

	/**
	 * Gets the session factory.
	 * 
	 * @return the session factory
	 */
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}

	/**
	 * Sets the session factory.
	 * 
	 * @param sessionFactory
	 *            the new session factory
	 */
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}

}
